#ifndef __BWC_CONFIGURATION_H__
#define __BWC_CONFIGURATION_H__

#include  "bandwidth_control.h"
#include "BWCProfileAdapter.h"
#include "mt_smi.h"

#define BWCPT_PROFILE(x) x, #x

#ifdef  BWC_J
	BWCProfile profileSetting[]={
		BWCProfile(BWCPT_NONE, "BWCPT_NONE",SMI_BWC_SCEN_NORMAL,"CON_SCE_NORMAL"),
		BWCProfile(BWCPT_VIDEO_NORMAL,"BWCPT_VIDEO_NORMAL",SMI_BWC_SCEN_VR,"CON_SCE_VSS"),
		BWCProfile(BWCPT_CAMERA_PREVIEW,"BWCPT_CAMERA_PREVIEW",SMI_BWC_SCEN_VR,"CON_SCE_VSS"),
		BWCProfile(BWCPT_CAMERA_ZSD,"BWCPT_CAMERA_ZSD",SMI_BWC_SCEN_VR,"CON_SCE_VSS"),
		BWCProfile(BWCPT_CAMERA_CAPTURE,"BWCPT_CAMERA_CAPTURE",SMI_BWC_SCEN_VR,"CON_SCE_VSS"),
		BWCProfile(BWCPT_CAMERA_ICFP,"BWCPT_CAMERA_ICFP",SMI_BWC_SCEN_ICFP,"CON_SCE_VSS"),
		BWCProfile(BWCPT_VIDEO_SWDEC_PLAYBACK,"BWCPT_VIDEO_SWDEC_PLAYBACK",SMI_BWC_SCEN_SWDEC_VP,"CON_SCE_VPWFD"),
		BWCProfile(BWCPT_VIDEO_PLAYBACK,"BWCPT_VIDEO_PLAYBACK",SMI_BWC_SCEN_VP,"CON_SCE_VPWFD"),
		BWCProfile(BWCPT_VIDEO_TELEPHONY,"BWCPT_VIDEO_TELEPHONY",SMI_BWC_SCEN_VR,"CON_SCE_VSS"),
		BWCProfile(BWCPT_VIDEO_RECORD,"BWCPT_VIDEO_RECORD",SMI_BWC_SCEN_VENC,"CON_SCE_VSS"),
		BWCProfile(BWCPT_VIDEO_RECORD_CAMERA,"BWCPT_VIDEO_RECORD_CAMERA",SMI_BWC_SCEN_VR,"CON_SCE_VSS"),
		BWCProfile(BWCPT_VIDEO_RECORD_SLOWMOTION,"BWCPT_VIDEO_RECORD_SLOWMOTION",SMI_BWC_SCEN_VR_SLOW,"CON_SCE_VSS"),
		BWCProfile(BWCPT_VIDEO_SNAPSHOT,"BWCPT_VIDEO_SNAPSHOT",SMI_BWC_SCEN_VR,"CON_SCE_VSS"),
		BWCProfile(BWCPT_VIDEO_LIVE_PHOTO,"BWCPT_VIDEO_LIVE_PHOTO",SMI_BWC_SCEN_MM_GPU,"CON_SCE_NORMAL"),
		BWCProfile(BWCPT_VIDEO_WIFI_DISPLAY,"BWCPT_VIDEO_WIFI_DISPLAY",SMI_BWC_SCEN_WFD,"CON_SCE_NORMAL"),
		BWCProfile(BWCPT_FORCE_MMDVFS,"BWCPT_FORCE_MMDVFS",SMI_BWC_SCEN_FORCE_MMDVFS,NULL),
	};
	int total_bwc_profiles = 16;

#elif defined(BWC_D1)||defined(BWC_D3)
		BWCProfile profileSetting[]={
		BWCProfile(BWCPT_NONE,"BWCPT_NONE",SMI_BWC_SCEN_NORMAL,"CON_SCE_NORMAL"),
		BWCProfile(BWCPT_VIDEO_NORMAL,"BWCPT_VIDEO_NORMAL",SMI_BWC_SCEN_VR,"CON_SCE_NORMAL"),
		BWCProfile(BWCPT_CAMERA_PREVIEW,"BWCPT_CAMERA_PREVIEW",SMI_BWC_SCEN_VR,"CON_SCE_VSS"),
		BWCProfile(BWCPT_CAMERA_ZSD,"BWCPT_CAMERA_ZSD",SMI_BWC_SCEN_VR,"CON_SCE_VSS"),
		BWCProfile(BWCPT_CAMERA_CAPTURE,"BWCPT_CAMERA_CAPTURE",SMI_BWC_SCEN_VR,"CON_SCE_VSS"),
		BWCProfile(BWCPT_CAMERA_ICFP,"BWCPT_CAMERA_ICFP",SMI_BWC_SCEN_ICFP,"CON_SCE_NORMAL"),
		BWCProfile(BWCPT_VIDEO_SWDEC_PLAYBACK,"BWCPT_VIDEO_SWDEC_PLAYBACK",SMI_BWC_SCEN_SWDEC_VP,"CON_SCE_VPWFD"),
		BWCProfile(BWCPT_VIDEO_PLAYBACK,"BWCPT_VIDEO_PLAYBACK",SMI_BWC_SCEN_VP,"CON_SCE_VPWFD"),
		BWCProfile(BWCPT_VIDEO_TELEPHONY,"BWCPT_VIDEO_TELEPHONY",SMI_BWC_SCEN_VR,"CON_SCE_VSS"),
		BWCProfile(BWCPT_VIDEO_RECORD,"BWCPT_VIDEO_RECORD",SMI_BWC_SCEN_VENC,"CON_SCE_VSS"),
		BWCProfile(BWCPT_VIDEO_RECORD_CAMERA,"BWCPT_VIDEO_RECORD_CAMERA",SMI_BWC_SCEN_VR,"CON_SCE_VSS"),
		BWCProfile(BWCPT_VIDEO_RECORD_SLOWMOTION,"BWCPT_VIDEO_RECORD_SLOWMOTION",SMI_BWC_SCEN_VR_SLOW,"CON_SCE_VSS"),
		#ifdef BWC_D3
			BWCProfile(BWCPT_VIDEO_SNAPSHOT,"BWCPT_VIDEO_SNAPSHOT",SMI_BWC_SCEN_VR,"CON_SCE_VSS"),
		#else
			BWCProfile(BWCPT_VIDEO_SNAPSHOT,"BWCPT_VIDEO_SNAPSHOT",SMI_BWC_SCEN_VSS,"CON_SCE_VSS"),
		#endif
		BWCProfile(BWCPT_VIDEO_LIVE_PHOTO,"BWCPT_VIDEO_LIVE_PHOTO",SMI_BWC_SCEN_MM_GPU,"CON_SCE_NORMAL"),
		BWCProfile(BWCPT_VIDEO_WIFI_DISPLAY,"BWCPT_VIDEO_WIFI_DISPLAY",SMI_BWC_SCEN_WFD,"CON_SCE_VPWFD"),
		BWCProfile(BWCPT_FORCE_MMDVFS,"BWCPT_FORCE_MMDVFS",SMI_BWC_SCEN_FORCE_MMDVFS,NULL)
	};
	int total_bwc_profiles = 16;
#elif defined(BWC_D2)
		BWCProfile profileSetting[]={
			BWCProfile(BWCPT_NONE,"BWCPT_NONE",SMI_BWC_SCEN_NORMAL,"CON_SCE_NORMAL"),
			BWCProfile(BWCPT_VIDEO_NORMAL,"BWCPT_VIDEO_NORMAL",SMI_BWC_SCEN_VR,"CON_SCE_NORMAL"),
			BWCProfile(BWCPT_CAMERA_PREVIEW,"BWCPT_CAMERA_PREVIEW",SMI_BWC_SCEN_VR,"CON_SCE_VSS"),
			BWCProfile(BWCPT_CAMERA_ZSD,"BWCPT_CAMERA_ZSD",SMI_BWC_SCEN_VR,"CON_SCE_ICFP"),
			BWCProfile(BWCPT_CAMERA_CAPTURE,"BWCPT_CAMERA_CAPTURE",SMI_BWC_SCEN_VR,"CON_SCE_ICFP"),
			BWCProfile(BWCPT_CAMERA_ICFP,"BWCPT_CAMERA_ICFP",SMI_BWC_SCEN_ICFP,"CON_SCE_ICFP"),
			BWCProfile(BWCPT_VIDEO_SWDEC_PLAYBACK,"BWCPT_VIDEO_SWDEC_PLAYBACK",SMI_BWC_SCEN_SWDEC_VP,"CON_SCE_NORMAL"),
			BWCProfile(BWCPT_VIDEO_PLAYBACK,"BWCPT_VIDEO_PLAYBACK",SMI_BWC_SCEN_VP,"CON_SCE_NORMAL"),
			BWCProfile(BWCPT_VIDEO_TELEPHONY,"BWCPT_VIDEO_TELEPHONY",SMI_BWC_SCEN_VR,"CON_SCE_VSS"),
			BWCProfile(BWCPT_VIDEO_RECORD,"BWCPT_VIDEO_RECORD",SMI_BWC_SCEN_VENC,"CON_SCE_VSS"),
			BWCProfile(BWCPT_VIDEO_RECORD_CAMERA,"BWCPT_VIDEO_RECORD_CAMERA",SMI_BWC_SCEN_VR,"CON_SCE_VSS"),
			BWCProfile(BWCPT_VIDEO_RECORD_SLOWMOTION,"BWCPT_VIDEO_RECORD_SLOWMOTION",SMI_BWC_SCEN_VR_SLOW,"CON_SCE_VSS"),
			BWCProfile(BWCPT_VIDEO_SNAPSHOT,"BWCPT_VIDEO_SNAPSHOT",SMI_BWC_SCEN_VR,"CON_SCE_VSS"),
			BWCProfile(BWCPT_VIDEO_LIVE_PHOTO,"BWCPT_VIDEO_LIVE_PHOTO",SMI_BWC_SCEN_MM_GPU,"CON_SCE_NORMAL"),
			BWCProfile(BWCPT_VIDEO_WIFI_DISPLAY,"BWCPT_VIDEO_WIFI_DISPLAY",SMI_BWC_SCEN_WFD,"CON_SCE_NORMAL"),
			BWCProfile(BWCPT_FORCE_MMDVFS,"BWCPT_FORCE_MMDVFS",SMI_BWC_SCEN_FORCE_MMDVFS,NULL)
	};
	int total_bwc_profiles = 16;
#elif defined(BWC_RO)
	BWCProfile profileSetting[] = {
		BWCProfile(BWCPT_PROFILE(BWCPT_NONE), SMI_BWC_SCEN_NORMAL, "CON_SCE_NORMAL"),
		BWCProfile(BWCPT_PROFILE(BWCPT_VIDEO_NORMAL), SMI_BWC_SCEN_VR, "CON_SCE_NORMAL"),
		BWCProfile(BWCPT_PROFILE(BWCPT_CAMERA_PREVIEW), SMI_BWC_SCEN_VR, "CON_SCE_VR_H264"),
		BWCProfile(BWCPT_PROFILE(BWCPT_CAMERA_ZSD), SMI_BWC_SCEN_VR, "CON_SCE_ZSD"),
		BWCProfile(BWCPT_PROFILE(BWCPT_CAMERA_CAPTURE), SMI_BWC_SCEN_VR, "CON_SCE_IC"),
		BWCProfile(BWCPT_PROFILE(BWCPT_CAMERA_ICFP), SMI_BWC_SCEN_ICFP, "CON_SCE_IC"),
		BWCProfile(BWCPT_PROFILE(BWCPT_VIDEO_SWDEC_PLAYBACK), SMI_BWC_SCEN_SWDEC_VP, "CON_SCE_VP"),
		BWCProfile(BWCPT_PROFILE(BWCPT_VIDEO_PLAYBACK), SMI_BWC_SCEN_VP, "CON_SCE_VP"),
		BWCProfile(BWCPT_PROFILE(BWCPT_VIDEO_TELEPHONY), SMI_BWC_SCEN_VR, "CON_SCE_VC"),
		BWCProfile(BWCPT_PROFILE(BWCPT_VIDEO_RECORD), SMI_BWC_SCEN_VENC, "CON_SCE_VR_H264"),
		BWCProfile(BWCPT_PROFILE(BWCPT_VIDEO_RECORD_CAMERA), SMI_BWC_SCEN_VR, "CON_SCE_VR_H264"),
		BWCProfile(BWCPT_PROFILE(BWCPT_VIDEO_RECORD_SLOWMOTION), SMI_BWC_SCEN_VR_SLOW, "CON_SCE_VR_H264"),
		BWCProfile(BWCPT_PROFILE(BWCPT_VIDEO_SNAPSHOT), SMI_BWC_SCEN_VR, "CON_SCE_VR_H264"),
		BWCProfile(BWCPT_PROFILE(BWCPT_VIDEO_LIVE_PHOTO), SMI_BWC_SCEN_MM_GPU, "CON_SCE_NORMAL"),
		BWCProfile(BWCPT_PROFILE(BWCPT_VIDEO_WIFI_DISPLAY), SMI_BWC_SCEN_WFD, "CON_SCE_NORMAL"),
		BWCProfile(BWCPT_PROFILE(BWCPT_FORCE_MMDVFS), SMI_BWC_SCEN_FORCE_MMDVFS, NULL),
	};
	int total_bwc_profiles = 16;

#else
	BWCProfile* profileSetting = NULL;
	int total_bwc_profiles = 0;
#endif

BWCProfile defaultProfileSetting[]={
	BWCProfile(BWCPT_NONE,"BWCPT_NONE",SMI_BWC_SCEN_NORMAL,"CON_SCE_NORMAL"),
	BWCProfile(BWCPT_VIDEO_NORMAL,"BWCPT_VIDEO_NORMAL",SMI_BWC_SCEN_VR,"CON_SCE_NORMAL"),
	BWCProfile(BWCPT_CAMERA_PREVIEW,"BWCPT_CAMERA_PREVIEW",SMI_BWC_SCEN_VR,"CON_SCE_NORMAL"),
	BWCProfile(BWCPT_CAMERA_ZSD,"BWCPT_CAMERA_ZSD",SMI_BWC_SCEN_VR,"CON_SCE_NORMAL"),
	BWCProfile(BWCPT_CAMERA_CAPTURE,"BWCPT_CAMERA_CAPTURE",SMI_BWC_SCEN_VR,"CON_SCE_NORMAL"),
	BWCProfile(BWCPT_CAMERA_ICFP,"BWCPT_CAMERA_ICFP",SMI_BWC_SCEN_VR,"CON_SCE_NORMAL"),
	BWCProfile(BWCPT_VIDEO_SWDEC_PLAYBACK,"BWCPT_VIDEO_SWDEC_PLAYBACK",SMI_BWC_SCEN_VP,"CON_SCE_NORMAL"),
	BWCProfile(BWCPT_VIDEO_PLAYBACK,"BWCPT_VIDEO_PLAYBACK",SMI_BWC_SCEN_VP,"CON_SCE_NORMAL"),
	BWCProfile(BWCPT_VIDEO_TELEPHONY,"BWCPT_VIDEO_TELEPHONY",SMI_BWC_SCEN_VR,"CON_SCE_NORMAL"),
	BWCProfile(BWCPT_VIDEO_RECORD,"BWCPT_VIDEO_RECORD",SMI_BWC_SCEN_VR,"CON_SCE_NORMAL"),
	BWCProfile(BWCPT_VIDEO_RECORD_CAMERA,"BWCPT_VIDEO_RECORD_CAMERA",SMI_BWC_SCEN_VR,"CON_SCE_NORMAL"),
	BWCProfile(BWCPT_VIDEO_RECORD_SLOWMOTION,"BWCPT_VIDEO_RECORD_SLOWMOTION",SMI_BWC_SCEN_VR,"CON_SCE_NORMAL"),
	BWCProfile(BWCPT_VIDEO_SNAPSHOT,"BWCPT_VIDEO_SNAPSHOT",SMI_BWC_SCEN_VR,"CON_SCE_NORMAL"),
	BWCProfile(BWCPT_VIDEO_LIVE_PHOTO,"BWCPT_VIDEO_LIVE_PHOTO",SMI_BWC_SCEN_NORMAL,"CON_SCE_NORMAL"),
	BWCProfile(BWCPT_VIDEO_WIFI_DISPLAY,"BWCPT_VIDEO_WIFI_DISPLAY",SMI_BWC_SCEN_NORMAL,"CON_SCE_NORMAL"),
	BWCProfile(BWCPT_FORCE_MMDVFS,"BWCPT_FORCE_MMDVFS",SMI_BWC_SCEN_NORMAL,NULL)
};
int total_default_bwc_profiles = 16;

#endif
